﻿using System;
using System.Threading;

namespace 用户模式之Volatile
{
    class Program
    {
        /***
         * 异变结构
         * ****/


        /// <summary>
        /// read和write都是从Memrory中读取， 读的都是最新的
        /// </summary>
        public static volatile bool isStop=false;   
        static void Main(string[] args)
        {
            // ThreadDemo\ThreadStaticMethod 目录下  release 出的问题
           // bool isStop = false;  // 出现死循环，具体问题查看 静态方法里面解释
            var t = new Thread(() =>
            {
                
                var isSuccess = false;
                while (!isStop)
                {
                    isSuccess = !isSuccess;
                }
            });
            t.Start();
            Thread.Sleep(1000);
           
            isStop = true;
            t.Join();// 阻塞主线程，让子执行完
            Console.WriteLine($"主线程执行完");
            Console.ReadKey();
        }
    }
}
